package dao;

import java.util.List;

import model.HibernateUtil;

import org.hibernate.Session;

public class HibernateDao {
	public Session getCurrentSession(){
		return HibernateUtil.currentSession();
	}
	/**
	 * 
	 * @param obj 需要进行持久化的对象
	 */
	
	public void saveObject(Object obj){
		getCurrentSession().save(obj);
	}
	/**
	 * 
	 * @param obj 需要进行更新的对象
	 */
	public void updateObject(Object obj){
		getCurrentSession().update(obj);
	}
	/**
	 * 使用hql语句进行查询，获取对象集合
	 * @param hql
	 * @return
	 */
	public List<?> getObjects(String hql){
		List<?> result=getCurrentSession().createQuery(hql)
											.list();
		return result;
		}
	/**
	 * 使用hql语句进行查询，获取对象
	 * @param hql
	 * @return
	 */
	public Object getObject(String hql){
		Object result=getCurrentSession().createQuery(hql).uniqueResult();
		return result;
	}
	/**
	 * 根据id获取对象 
	 * @param <T>
	 * @param cls 对象的类型
	 * @param id
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public <T> T getObject(Class<T> cls,String id){
		Object result=getCurrentSession().get(cls, id);
		return (T) result;
	}
	
	public void deleteObject(Object obj){
		getCurrentSession().delete(obj);
	}
} 
